home *** CD-ROM | disk | FTP | other *** search
/ Amiga News 95 / Amiga News 95.iso / dpat / dpat96 / klondike_adptools_v1.1 / datas / french.lha / 2-MakeGlobalPalette.adpro < prev    next >
Text File  |  1995-04-17  |  9KB  |  397 lines

  1. /*
  2. ** MakeGlobalPalette.adpro
  3. **  This ARexx script for ADPro v2.5 or higher load some selected pictures
  4. **  (IFF ILBM 24Bits, 86x128) selected by user, render then in a big backdrop
  5. **  picture, and finally save the resultant palette.
  6. **
  7. ** $VER: MakeGlobalPalette/French v1.1 (06.04.95) © Copyright Lejardinier Olivier - All rights reserverd
  8. **
  9. */
  10.  
  11.  ADDRESS "ADPro"
  12.  OPTIONS RESULTS
  13.  
  14.  NL = '0A'X
  15.  FALSE = 0
  16.  TRUE = 1
  17.  
  18. /*
  19. ** Save the current environment.
  20. */
  21.  
  22.  TempDefaults = "T:TempADProDefaults"
  23.  SAVE_DEFAULTS TempDefaults
  24.  
  25. /*
  26. ** Initializations.
  27. */
  28.  
  29.  CLOSE_RENDER_SCREEN
  30.  CLEAR_RENDERED
  31.  CLEAR_RAW
  32.  PSTATUS "UNLOCKED"
  33.  ADPRO_TO_FRONT
  34.  
  35.  MemoryError = "Peut-être qu'il n'y a pas assez de mémoire."
  36.  FileMemError = "Peut-être que le fichier est corrompu," || NL || "ou qu'il n'y a pas assez de mémoire."
  37.  DiskSpaceError = "Peut-être qu'il n'y a pas assez d'espace disque de libre."
  38.  
  39. /*
  40. ** Get some cards files.
  41. */
  42.  
  43.  Continue = FALSE
  44.  DO UNTIL ( Continue = TRUE )
  45.   GETFILES '"Sélectionner 4 ou + de fichiers :"'
  46.   IF ( RC ~= 0 ) THEN
  47.    DO
  48.     OKAYN '"Erreur :"' '"Vous DEVEZ sélectionner des fichiers !"' '"Sélectionner|Annuler"'
  49.     IF ( RC = 0 ) THEN
  50.      CALL ForceExit
  51.    END
  52.   ELSE
  53.    DO
  54.     CardsFiles = ADPRO_RESULT
  55.     NbCards = WORDS( CardsFiles )
  56.     IF ( NbCards < 4 ) THEN
  57.      DO
  58.       OKAYN '"Erreur :"' '"Vous DEVEZ sélectionner au moins 4 cartes !"' '"Sélectionner|Annuler"'
  59.       IF ( RC = 0 ) THEN
  60.        CALL ForceExit
  61.      END
  62.     ELSE
  63.      Continue = TRUE
  64.    END
  65.  END
  66.  
  67. /*
  68. ** Create backdrop.
  69. */
  70.  
  71.  Max = WORDS( CardsFiles ) % 4
  72.  Curr = Max
  73.  LOAD_TYPE "REPLACE"
  74.  
  75.  Continue = FALSE
  76.  DO UNTIL (( Continue = TRUE ) | ( Curr = 0 ))
  77.   LOADER "BACKDROP" "XXX" "WIDTH" 4*88 "HEIGHT" Curr*130 "COLOR"
  78.   IF ( RC ~= 0) THEN
  79.    Curr = Curr - 1
  80.   ELSE
  81.    Continue = TRUE
  82.  END
  83.  
  84.  IF ( Curr = 0 ) THEN
  85.   DO
  86.    Text = "Erreur : Pas assez de mémoire pour calculer la palette globale..."
  87.    OKAYN '"Erreur :"' '"'Text'"' '"Quitter"'
  88.    CALL ForceExit
  89.   END
  90.  ELSE
  91.   DO
  92.    Continue0 = FALSE
  93.    Continue = FALSE
  94.    DO UNTIL ( Continue0 = TRUE )
  95.     DO UNTIL ( Continue = TRUE )
  96.      Text = "Nombre de cartes utilisées pour le rendu ? (" || Curr || "x4=" || Curr*4 || ") :"
  97.      GETNUMBER '"'Text'"' Curr 1 Max
  98.      IF ( RC ~= 0 ) THEN
  99.       DO
  100.        Text = "Ok pour utiliser" Curr || "x4=" || Curr*4 "cartes ?"
  101.        OKAYN '"Confirmer :"' '"'Text'"' '"Ok|Sélectionner|Annuler"'
  102.        IF ( RC = 0 ) THEN
  103.         CALL ForceExit
  104.        ELSE
  105.         IF ( RC = 1 ) THEN
  106.          Continue = TRUE
  107.       END
  108.      ELSE
  109.       DO
  110.        Curr = ADPRO_RESULT
  111.        Continue = TRUE
  112.       END
  113.     END
  114.  
  115.     LOAD_TYPE "REPLACE"
  116.     LOADER "BACKDROP" "XXX" "WIDTH" 4*88 "HEIGHT" Curr*130 "COLOR"
  117.     IF ( RC ~= 0) THEN
  118.      DO
  119.       Text = "Impossible de créer le backdrop." || NL || MemoryError
  120.       OKAYN '"Erreur :"' '"'Text'"' '"Réessayer|Annuler"'
  121.       IF ( RC = 0 ) THEN
  122.        CALL ForceExit
  123.      END
  124.     ELSE
  125.      DO
  126.       Max = Curr
  127.       Continue0 = TRUE
  128.      END
  129.    END
  130.   END
  131.  
  132. /*
  133. ** Compose all Sélectionnered cards files.
  134. */
  135.  
  136.  X = 0
  137.  Y = 0
  138.  NbCards = Max * 4
  139.  Index = 1
  140.  Counter = 0
  141.  LOAD_TYPE "COMPOSE"
  142.  
  143.  DO WHILE ( Index <= NbCards )
  144.  
  145.   Continue = FALSE
  146.   DO UNTIL ( Continue = TRUE )    
  147.    Cardname = WORD( CardsFiles , Index )
  148.    LOADER "IFF" Cardname X+1 Y+1 100 -1 -1 -1
  149.    IF ( RC ~= 0 ) THEN
  150.     DO
  151.      Text = "Impossible de charger :" || NL || STRIP( Cardname , B , '"' ) || NL || FileMemError
  152.      OKAYN '"Erreur :"' '"'Text'"' '"Réessayer|Passer|Annuler"'
  153.      IF ( RC = 0 ) THEN
  154.       CALL ForceExit
  155.      ELSE
  156.       IF ( RC = 2 ) THEN
  157.        DO
  158.         Index = Index + 1
  159.         IF ( Index > NbCards ) THEN
  160.          DO
  161.           IF ( Counter = 0 ) THEN
  162.            DO
  163.             Text = "Impossible de calculer la palette globale :" || NL || "Aucune images n'a été chargées !"
  164.             OKAYN '"Erreur :"' '"'Text'"' '"Quitter"'
  165.             CALL ForceExit
  166.            END
  167.           ELSE
  168.            DO
  169.             Text = "Il n'y a plus de cartes à charger... " || NL || "Voulez-vous calculer la palette globale avec les" || NL || Counter "images précédement chargées ?"
  170.             OKAYN '"Requète :"' '"'Text'"' '"Oui|Quitter"'
  171.             IF ( RC = 0 ) THEN
  172.              CALL ForceExit
  173.            END
  174.          END
  175.        END
  176.     END
  177.    ELSE
  178.     DO
  179.      Continue = TRUE
  180.      Index = Index + 1
  181.      Counter = Counter + 1
  182.     END
  183.   END
  184.   
  185.   X = X + 88
  186.   IF ( X = 4*88) THEN
  187.    DO
  188.     X = 0
  189.     Y = Y + 130
  190.    END
  191.  END
  192.  
  193. /*
  194. ** Render all cards files.
  195. */
  196.  
  197.  SET_RENDER_MODE Amiga 167940 4*88 Max*130 HAM8
  198.  DITHER 1
  199.  
  200.  Continue = FALSE
  201.  DO UNTIL ( Continue = TRUE )
  202.   EXECUTE
  203.   IF ( RC ~= 0 ) THEN
  204.    DO
  205.     Text = "Impossible de créer l'image finale." || NL || MemoryError
  206.     OKAYN '"Erreur :"' '"'Text'"' '"Réessayer|Annuler"'
  207.     IF ( RC = 0 ) THEN
  208.      CALL ForceExit
  209.    END
  210.   ELSE
  211.    Continue = TRUE
  212.  END
  213.  
  214. /*
  215. ** Modify palette file.
  216. */
  217.  
  218.  Text = "Voulez-vous utiliser la couleur de fond par DEFAUT ou CUSTOM ?"
  219.  OKAYN '"Requète :"' '"'Text'"' '"Default|Annuler|Custom"'
  220.  IF ( RC = 2 ) THEN
  221.   CALL ForceExit
  222.  ELSE
  223.   IF ( RC = 1 ) THEN
  224.    PPOKE 0 56 101 121
  225.  ELSE
  226.   DO
  227.    Text = "Sélectionner la composante ROUGE :"
  228.    GETNUMBER '"'Text'"' 56 0 255
  229.     IF ( RC ~= 0 ) THEN
  230.      Red0 = 56
  231.     ELSE
  232.      Red0 = ADPRO_RESULT
  233.    Text = "Sélectionner la composante VERTE :"
  234.    GETNUMBER '"'Text'"' 101 0 255
  235.     IF ( RC ~= 0 ) THEN
  236.      Green0 = 101
  237.     ELSE
  238.      Green0 = ADPRO_RESULT
  239.    Text = "Sélectionner la composante BLEUE :"
  240.    GETNUMBER '"'Text'"' 121 0 255
  241.     IF ( RC ~= 0 ) THEN
  242.      Blue0 = 121
  243.     ELSE
  244.      Blue0 = ADPRO_RESULT
  245.    PPOKE 0 Red0 Green0 Blue0
  246.   END
  247.  
  248.  PPOKE 1 255 0 0
  249.  PPOKE 2 255 255 255
  250.  PPOKE 3 0 0 0
  251.  PPOKE 20 255 0 0
  252.  PPOKE 24 255 0 0
  253.  
  254. /*
  255. ** Save palette file.
  256. */
  257.  
  258.  DestDir = WORD( CardsFiles , 1 )
  259.  FirstChar = LEFT( DestDir , 1 )
  260.  IF ( (FirstChar = '"') | (FirstChar = '''') ) THEN
  261.   DestDir = STRIP( DestDir, "B" , FirstChar )
  262.  
  263.  FNameSepPos = LASTPOS( '/' , DestDir )
  264.  IF (FNameSepPos = 0) THEN
  265.   FNameSepPos = LASTPOS( ':' , DestDir )
  266.  
  267.  IF (FNameSepPos ~= 0) THEN
  268.   DO
  269.    Basename = RIGHT( DestDir , LENGTH( DestDir ) - FNameSepPos )
  270.    DestDir = LEFT( DestDir , FNameSepPos )
  271.    IF ( LASTPOS( '.'  , Basename ) ~= 0 ) THEN
  272.     Basename = DELSTR( Basename , LASTPOS( '.'  , Basename ) )
  273.   END
  274.  ELSE
  275.   DO
  276.    DestDir = ""
  277.    Basename = "Cards"
  278.   END
  279.   
  280.  Palettename = Basename || ".Palette"
  281.  Continue = FALSE
  282.  DO UNTIL ( Continue = TRUE )
  283.   GETFILE '"Sélectionner le nom de la palette :"' '"'DestDir'"' '"'Palettename'"'
  284.   IF ( RC ~= 0 ) THEN
  285.    DO
  286.     Text = "Utiliser" Palettename "comme nom de palette ?"
  287.     OKAYN '"Confirmer :"' '"'Text'"' '"Utiliser|Sélectionner|Annuler"'
  288.     IF ( RC = 0 ) THEN
  289.      CALL ForceExit
  290.     ELSE
  291.      IF ( RC = 1 ) THEN
  292.       DO
  293.        Palettename = DestDir || Palettename
  294.        Continue = TRUE
  295.       END
  296.    END
  297.   ELSE
  298.    DO
  299.     Palettename = ADPRO_RESULT
  300.     Continue = TRUE
  301.    END
  302.  END
  303.  
  304.  Continue = FALSE
  305.  DO UNTIL ( Continue = TRUE )
  306.   PSAVE Palettename
  307.   IF ( RC ~= 0 ) THEN
  308.    DO
  309.     Text = "Impossible de sauver la palette :" || NL || STRIP( Palettename , B , '"' ) || NL || DiskSpaceError
  310.     OKAYN '"Erreur :"' '"'Text'"' '"Réessayer|Annuler"'
  311.     IF ( RC = 0 ) THEN
  312.      CALL ForceExit
  313.    END
  314.   ELSE
  315.    Continue = TRUE
  316.  END
  317.   
  318. /*
  319. ** Save preview.
  320. */
  321.  
  322.  OKAYN '"Requète :"' '"Voulez-vous sauver la preview ?"' '"Sauver|Quitter"'
  323.  IF ( RC = 1 ) THEN
  324.   DO
  325.    CLOSE_RENDER_SCREEN
  326.    CLEAR_RENDERED
  327.    PSTATUS "UNLOCKED"
  328.    EXECUTE
  329.    IF ( RC ~= 0 ) THEN
  330.     DO
  331.      Text = "Impossible de créer la preview..."
  332.      OKAYN '"Erreur :"' '"'Text'"' '"Quitter"'
  333.      CALL ForceExit
  334.     END
  335.    ELSE
  336.     DO
  337.      Previewname = Basename || "_Preview.HAM8"
  338.      Continue = FALSE
  339.      DO UNTIL ( Continue = TRUE )
  340.       GETFILE '"Sélectionner le nom de la preview :"' '"'DestDir'"' '"'Previewname'"'
  341.       IF ( RC ~= 0 ) THEN
  342.        DO
  343.         Text = "Utiliser" Previewname "comme nom pour la preview ?"
  344.         OKAYN '"Confirmer :"' '"'Text'"' '"Utiliser|Sélectionner|Annuler"'
  345.         IF ( RC = 0 ) THEN
  346.          CALL ForceExit
  347.         ELSE
  348.          IF ( RC = 1 ) THEN
  349.           DO
  350.            Previewname = DestDir || Previewname
  351.            Continue = TRUE
  352.           END
  353.        END
  354.       ELSE
  355.        DO
  356.         Previewname = ADPRO_RESULT
  357.         Continue = TRUE
  358.        END
  359.      END
  360.  
  361.      Continue = FALSE
  362.      DO UNTIL ( Continue = TRUE)   
  363.       SAVER "IFF" Previewname "IMAGE"
  364.       IF ( RC ~= 0 ) THEN
  365.        DO 
  366.         Text = "Impossible de sauver la preview :" || NL || STRIP( Previewname , B , '"' ) || NL || DiskSpaceError
  367.         OKAYN '"Erreur :"' '"'Text'"' '"Réessayer|Annuler"'
  368.         IF ( RC = 0 ) THEN
  369.          CALL ForceExit
  370.        END
  371.       ELSE
  372.        Continue = TRUE
  373.      END
  374.     END
  375.   END
  376.  
  377. /*
  378. ** Quit.
  379. */
  380.  
  381. ForceExit:
  382.  
  383.  CLOSE_RENDER_SCREEN
  384.  CLEAR_RENDERED
  385.  CLEAR_RAW
  386.  
  387.  IF ( EXISTS( TempDefaults ) ) THEN
  388.   DO
  389.    LOAD_DEFAULTS TempDefaults
  390.    IF ( RC ~= 0 ) THEN
  391.     OKAY1 "Impossible de restaurer les prefs."
  392.    ADDRESS COMMAND "C:Delete >NIL: FILE" TempDefaults "QUIET"
  393.   END
  394.  
  395. EXIT 0
  396. RETURN
  397.